JavaScript
part 8/19 Β· 71.4 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
GΓ©nΓ©ralement, JavaScript sert Γ contrΓ΄ler les donnΓ©es saisies dans des formulaires HTML, ou Γ interagir avec le document HTML via l'interface Document Object Model, fournie par le navigateur (on parle alors parfois de HTML dynamique ou DHTML). Il est aussi utilisΓ© pour rΓ©aliser des applications dynamiques, des transitions, des animations ou manipuler des donnΓ©es rΓ©actives, Γ des fins ergonomiques ou cosmΓ©tiques.
JavaScript n'est pas limitΓ© Γ la manipulation de documents HTML et peut aussi servir Γ manipuler des documents SVG, XUL et autres dialectes XML.
IntΓ©gration
Il existe plusieurs faΓ§ons dβintΓ©grer JavaScript dans du code html:
β’ Dans des attributs dβΓ©vΓ¨nements html : <button onclick="alert('clic !')">clic ici</button>. Le code JavaScript alert('clic !')sera exΓ©cutΓ© quand le bouton sera cliquΓ©.
β’ Dans des balises <script> : <script>//ici on peut mettre du code JavaScript</script>
β’ Dans des fichiers externes : <script src="chemin/ver/mon/fichier.js"></script>
IncompatibilitΓ©
Netscape et Microsoft (avec JScript dans Internet Explorer jusqu'Γ la version 9) ont dΓ©veloppΓ© leur propre variante de ce langage qui chacune supporte presque intΓ©gralement la norme ECMAScript mais possΓ¨de des fonctionnalitΓ©s supplΓ©mentaires et incompatibles, rarement utilisΓ©es dans le cadre de la programmation de pages web. Pourtant les scripts JavaScript sont souvent la source de difficultΓ©s. Elles sont plus souvent dues Γ la prise en charge des diffΓ©rentes versions des modΓ¨les d'objets (DOM) fournis par les navigateurs, qu'Γ des problΓ¨mes de portabilitΓ© du langage (les diffΓ©rentes mises en Εuvre respectant relativement bien la norme ECMAScript).
Pour vérifier dynamiquement si un objet (dans la version JavaScript utilisée lors de l'interprétation) possède bien une méthode, on utilise souvent une construction du type :
if (monObjet.methode && typeof monObjet.methode === 'function') {
monObjet.methode();
}
On vΓ©rifie ainsi que monObjet a bien une mise en Εuvre de methode que l'on peut alors utiliser. Le plus souvent, si un navigateur ne gΓ¨re pas la methode de monObjet, il gΓ¨re une mΓ©thode comparable methode2, et on peut alors adapter le code JavaScript au navigateur qui l'exΓ©cute :
if (typeof monObjet.methode === 'function') {
monObjet.methode();
} else if (typeof monObjet.methode2 === 'function') {
monObjet.methode2();
}
Une autre mΓ©thode consiste Γ vΓ©rifier, cΓ΄tΓ© serveur, le navigateur utilisΓ© par le client et d'envoyer le code correspondant. Cela n'est toutefois pas recommandable, car il est largement prΓ©fΓ©rable de tester directement l'existence, le comportement d'une fonction, d'une propriΓ©tΓ©, etc. plutΓ΄t que de faire des prΓ©somptions basΓ©es sur la dΓ©tection du navigateur.
Ajax
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ